Il collo di bottiglia fondamentale nello sviluppo delle applicazioni web è l' esecuzione sincrona delle operazioni di input/output. Quando uno script esegue una richiesta sincrona, blocca il thread principale del browser sulla latenza intrinseca della rete, creando uno scenario di tipo "Stop-the-World".
1. Il problema del blocco
Le richieste sincrone (usando il false flag in XMLHttpRequest.open) rubano il thread del browser. Questo impedisce tutte le interazioni dell'utente, le animazioni e il rendering fino a quando il server non risponde. Per l'utente, la scheda sembra bloccata.
2. Divergenza logica
Passare da un modello lineare a un' stile asincrono. Mentre la programmazione sincrona segue una sequenza rigida dall'alto verso il basso, l'asincronia si basa su gestori di eventi per notare quando arrivano i dati, permettendo allo script di continuare l'esecuzione immediatamente.
3. Obbligo di responsività dell'interfaccia utente
I requisiti moderni dei progetti richiedono di gestire la lettura dei file o il recupero dei dati senza bloccare l'interfaccia del documento. Ciò garantisce che anche durante operazioni remote complesse, il cursore rimanga attivo e i pulsanti rimangano cliccabili.